<?php

namespace Unl\HomologacionBundle\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
* @ORM\Entity(repositoryClass="Unl\HomologacionBundle\Repository\UniversidadRepository")
*/
class Universidad
{
    /**
    * @ORM\Id
    * @ORM\Column(type="bigint")
    * @ORM\GeneratedValue(strategy="AUTO")
    */
    protected $id;

    /**
    * @ORM\Column(type="string", length=10)
    * @Assert\NotBlank(message = "El campo codigo no puede estar en blanco.")
    */
    protected $codigo;

    /**
    * @ORM\Column(type="string", length=100)
    * @Assert\NotBlank(message = "El campo nombre no puede estar en blanco.")
    */
    protected $nombre;

    /**
    * @ORM\Column(type="text", nullable=true)
    */
    protected $descripcion;


    /**
    * @ORM\OneToMany(targetEntity="Carrera", mappedBy="universidad", cascade={"persist"}, orphanRemoval=true)
    */
    protected $carreras;


    public function __construct()
    {
        $this->carreras = new ArrayCollection();
    }


    /**
     * Get id
     *
     * @return bigint 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set codigo
     *
     * @param string $codigo
     */
    public function setCodigo($codigo)
    {
        $this->codigo = $codigo;
    }

    /**
     * Get codigo
     *
     * @return string 
     */
    public function getCodigo()
    {
        return $this->codigo;
    }

    /**
     * Set nombre
     *
     * @param string $nombre
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }

    /**
     * Set descripcion
     *
     * @param text $descripcion
     */
    public function setdescripcion($descripcion)
    {
        $this->descripcion = $descripcion;
    }

    /**
     * Get descripcion
     *
     * @return text 
     */
    public function getdescripcion()
    {
        return $this->descripcion;
    }


    public function __toString()
    {
	return $this->id.' '.$this->nombre;
    }

    /**
     * Add carreras
     *
     * @param Unl\HomologacionBundle\Entity\Carrera $carreras
     */
    public function addCarrera(\Unl\HomologacionBundle\Entity\Carrera $carrera)
    {
        $this->carreras->add($carrera);
        $carrera->setUniversidad($this);
    }

    /**
     * Get carreras
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getCarreras()
    {
        return $this->carreras;
    }
}